/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package net.sf.refactorit.parser;

/**
 *
 * @author Heliomar
 */

import java.io.InputStream;
import java.io.Reader;
import java.util.HashMap;
import rantlr.ANTLRHashString;
import rantlr.ByteBuffer;
import rantlr.CharBuffer;
import rantlr.CharScanner;
import rantlr.CharStreamException;
import rantlr.CharStreamIOException;
import rantlr.InputBuffer;
import rantlr.LexerSharedInputState;
import rantlr.NoViableAltForCharException;
import rantlr.RecognitionException;
import rantlr.Token;
import rantlr.TokenStream;
import rantlr.TokenStreamException;
import rantlr.TokenStreamIOException;
import rantlr.TokenStreamRecognitionException;
import rantlr.collections.impl.BitSet;

public class JavaLexer extends CharScanner
  implements JavaTokenTypes, TokenStream
{
  protected char mLA1;
  public static final String[] CHARS = new String[65536];
  protected static HashMap literals;
  public static final BitSet _tokenSet_0;
  public static final BitSet _tokenSet_1;
  public static final BitSet _tokenSet_2;
  public static final BitSet _tokenSet_3;
  public static final BitSet _tokenSet_4;

  public final void setAssertEnabled(boolean enable)
  {
    if (enable)
      literals.put(new ANTLRHashString("assert", null), new LiteralPair("assert", 120));
    else
      literals.remove(new ANTLRHashString("assert", null));
  }

  public final void setEnumEnabled(boolean enable)
  {
    if (enable)
      literals.put(new ANTLRHashString("enum", null), new LiteralPair("enum", 103));
    else
      literals.remove(new ANTLRHashString("enum", null));
  }

  private final LiteralPair findLiteral()
  {
    this.hashString.setBuffer(this.text.getBuffer(), this.text.length());
    LiteralPair result = (LiteralPair)literals.get(this.hashString);
    this.hashString.clean();
    return result;
  }

  public JavaLexer(InputStream in)
  {
    this(new ByteBuffer(in));
  }
  public JavaLexer(Reader in) {
    this(new CharBuffer(in));
  }
  public JavaLexer(InputBuffer ib) {
    this(new LexerSharedInputState(ib));
  }
  public JavaLexer(LexerSharedInputState state) {
    super(state);
    this.caseSensitiveLiterals = true;
    setCaseSensitive(true);
  }

  public Token nextToken()
    throws TokenStreamException
  {
    Token _token = null;
    int _ttype = 0;
    resetText();
    try
    {
      if (Character.isJavaIdentifierStart(this.mLA1))
        mIDENT(true);
      else switch (this.mLA1)
        {
        case '?':
          mQUESTION(true);
          break;
        case '(':
          mLPAREN(true);
          break;
        case ')':
          mRPAREN(true);
          break;
        case '[':
          mLBRACK(true);
          break;
        case ']':
          mRBRACK(true);
          break;
        case '{':
          mLCURLY(true);
          break;
        case '}':
          mRCURLY(true);
          break;
        case ':':
          mCOLON(true);
          break;
        case ',':
          mCOMMA(true);
          break;
        case '~':
          mBNOT(true);
          break;
        case ';':
          mSEMI(true);
          break;
        case '@':
          mAT(true);
          break;
        case '\t':
        case '\n':
        case '\f':
        case '\r':
        case ' ':
          mWS(true);
          break;
        case '\'':
          mCHAR_LITERAL(true);
          break;
        case '"':
          mSTRING_LITERAL(true);
          break;
        case '$':
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
        case 'K':
        case 'L':
        case 'M':
        case 'N':
        case 'O':
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z':
        case '_':
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z':
          mIDENT(true);
          break;
        case '.':
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':
          mNUM_INT(true);
          break;
        case '\032':
        case '\\':
          mUNICODE_EOF(true);
          break;
        case '\013':
        case '\016':
        case '\017':
        case '\020':
        case '\021':
        case '\022':
        case '\023':
        case '\024':
        case '\025':
        case '\026':
        case '\027':
        case '\030':
        case '\031':
        case '\033':
        case '\034':
        case '\035':
        case '\036':
        case '\037':
        case '!':
        case '#':
        case '%':
        case '&':
        case '*':
        case '+':
        case '-':
        case '/':
        case '<':
        case '=':
        case '>':
        case '^':
        case '`':
        case '|':
        default:
          if ((this.mLA1 == '>') && (LA(2) == '>') && (LA(3) == '>') && (LA(4) == '=')) {
            mBSR_ASSIGN(true);
          }
          else if ((this.mLA1 == '>') && (LA(2) == '>') && (LA(3) == '=')) {
            mSR_ASSIGN(true);
          }
          else if ((this.mLA1 == '>') && (LA(2) == '>') && (LA(3) == '>')) {
            mBSR(true);
          }
          else if ((this.mLA1 == '<') && (LA(2) == '<') && (LA(3) == '=')) {
            mSL_ASSIGN(true);
          }
          else if ((this.mLA1 == '=') && (LA(2) == '=')) {
            mEQUAL(true);
          }
          else if ((this.mLA1 == '!') && (LA(2) == '=')) {
            mNOT_EQUAL(true);
          }
          else if ((this.mLA1 == '/') && (LA(2) == '=')) {
            mDIV_ASSIGN(true);
          }
          else if ((this.mLA1 == '+') && (LA(2) == '=')) {
            mPLUS_ASSIGN(true);
          }
          else if ((this.mLA1 == '+') && (LA(2) == '+')) {
            mINC(true);
          }
          else if ((this.mLA1 == '-') && (LA(2) == '=')) {
            mMINUS_ASSIGN(true);
          }
          else if ((this.mLA1 == '-') && (LA(2) == '-')) {
            mDEC(true);
          }
          else if ((this.mLA1 == '*') && (LA(2) == '=')) {
            mSTAR_ASSIGN(true);
          }
          else if ((this.mLA1 == '%') && (LA(2) == '=')) {
            mMOD_ASSIGN(true);
          }
          else if ((this.mLA1 == '>') && (LA(2) == '>')) {
            mSR(true);
          }
          else if ((this.mLA1 == '>') && (LA(2) == '=')) {
            mGE(true);
          }
          else if ((this.mLA1 == '<') && (LA(2) == '<')) {
            mSL(true);
          }
          else if ((this.mLA1 == '<') && (LA(2) == '=')) {
            mLE(true);
          }
          else if ((this.mLA1 == '^') && (LA(2) == '=')) {
            mBXOR_ASSIGN(true);
          }
          else if ((this.mLA1 == '|') && (LA(2) == '=')) {
            mBOR_ASSIGN(true);
          }
          else if ((this.mLA1 == '|') && (LA(2) == '|')) {
            mLOR(true);
          }
          else if ((this.mLA1 == '&') && (LA(2) == '=')) {
            mBAND_ASSIGN(true);
          }
          else if ((this.mLA1 == '&') && (LA(2) == '&')) {
            mLAND(true);
          }
          else if ((this.mLA1 == '/') && (LA(2) == '/')) {
            mSL_COMMENT(true);
          }
          else if ((this.mLA1 == '/') && (LA(2) == '*')) {
            mML_COMMENT(true);
          }
          else if (this.mLA1 == '=') {
            mASSIGN(true);
          }
          else if (this.mLA1 == '!') {
            mLNOT(true);
          }
          else if (this.mLA1 == '/') {
            mDIV(true);
          }
          else if (this.mLA1 == '+') {
            mPLUS(true);
          }
          else if (this.mLA1 == '-') {
            mMINUS(true);
          }
          else if (this.mLA1 == '*') {
            mSTAR(true);
          }
          else if (this.mLA1 == '%') {
            mMOD(true);
          }
          else if (this.mLA1 == '>') {
            mGT(true);
          }
          else if (this.mLA1 == '<') {
            mLT(true);
          }
          else if (this.mLA1 == '^') {
            mBXOR(true);
          }
          else if (this.mLA1 == '|') {
            mBOR(true);
          }
          else if (this.mLA1 == '&') {
            mBAND(true);
          }
          else if (this.mLA1 == 65535) { uponEOF(); this._returnToken = makeToken(1); } else {
            throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
          }
        }
      if (this._returnToken != null);
      _ttype = this._returnToken.getType();
      this._returnToken.setType(_ttype);
      return this._returnToken;
    }
    catch (RecognitionException e) {
      throw new TokenStreamRecognitionException(e);
    }
    catch (CharStreamException cse)
    {
      if (cse instanceof CharStreamIOException) {
        throw new TokenStreamIOException(((CharStreamIOException)cse).io);
      }

      throw new TokenStreamException(cse.getMessage());
    }
  }

  public final void mQUESTION(boolean _createToken)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 70;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("?"); return; }

    match('?');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mLPAREN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 96;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("("); return; }

    match('(');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mRPAREN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 97;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText(")"); return; }

    match(')');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mLBRACK(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 66;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("["); return; }

    match('[');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mRBRACK(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 67;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("]"); return; }

    match(']');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mLCURLY(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 99;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("{"); return; }

    match('{');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mRCURLY(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 100;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("}"); return; }

    match('}');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mCOLON(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 110;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText(":"); return; }

    match(':');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mCOMMA(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 74;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText(","); return; }

    match(',');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 98;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("="); return; }

    match('=');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mEQUAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 142;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("=="); return; }

    match("==");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mLNOT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 154;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("!"); return; }

    match('!');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mBNOT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 153;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("~"); return; }

    match('~');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mNOT_EQUAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 141;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("!="); return; }

    match("!=");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mDIV(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 149;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("/"); return; }

    match('/');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mDIV_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 129;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("/="); return; }

    match("/=");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mPLUS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 147;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("+"); return; }

    consume();
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mPLUS_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 126;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("+="); return; }

    match("+=");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mINC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 151;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("++"); return; }

    match("++");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mMINUS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 148;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("-"); return; }

    consume();
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mMINUS_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 127;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("-="); return; }

    match("-=");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mDEC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 152;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("--"); return; }

    match("--");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mSTAR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 87;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("*"); return; }

    consume();
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mSTAR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 128;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("*="); return; }

    match("*=");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mMOD(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 150;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("%"); return; }

    match('%');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mMOD_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 130;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("%="); return; }

    match("%=");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mSR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 76;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText(">>"); return; }

    match(">>");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mSR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 131;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText(">>="); return; }

    match(">>=");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mBSR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 77;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText(">>>"); return; }

    match(">>>");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mBSR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 132;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText(">>>="); return; }

    match(">>>=");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mGE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 144;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText(">="); return; }

    match(">=");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mGT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 75;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText(">"); return; }

    match(">");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mSL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 146;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("<<"); return; }

    match("<<");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mSL_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 133;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("<<="); return; }

    match("<<=");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mLE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 143;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("<="); return; }

    match("<=");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mLT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 73;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("<"); return; }

    match('<');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mBXOR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 140;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("^"); return; }

    match('^');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mBXOR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 135;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("^="); return; }

    match("^=");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mBOR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 139;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("|"); return; }

    match('|');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mBOR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 136;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("|="); return; }

    match("|=");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mLOR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 137;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("||"); return; }

    match("||");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mBAND(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 104;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("&"); return; }

    match('&');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mBAND_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 134;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("&="); return; }

    match("&=");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mLAND(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 138;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("&&"); return; }

    match("&&");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mSEMI(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 63;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText(";"); return; }

    match(';');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mAT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 95;

    if ((this.inputState.guessing == 0) &&
      (_createToken)) { consume(); this._returnToken = makeToken(_ttype); this._returnToken.setText("@"); return; }

    match('@');
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mWS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 165;

    int _cnt392 = 0;
      boolean x = true;
    while (x)
    {
      switch (this.mLA1)
      {
      case ' ':
        consume();
        break;
      case '\t':
        consume();
        break;
      case '\f':
        consume();
        break;
      case '\n':
      case '\r':
        if ((this.mLA1 == '\r') && (LA(2) == '\n')) {
          match("\r\n");
        }
        else if (this.mLA1 == '\r') {
          consume();
        }
        else if (this.mLA1 == '\n') {
          consume();
        }
        else {
          throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
        }

        if (this.inputState.guessing == 0)
          newline(); break;
      default:
        if (_cnt392 >= 1) break; throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
      }

      ++_cnt392;
    }

    if (this.inputState.guessing == 0) {
      _ttype = -1;
    }
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mSL_COMMENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 166;

    match("//");
    while (true)
    {
      if (_tokenSet_0.member(this.mLA1))
      {
        match(_tokenSet_0);
      }

      if ((this.mLA1 < 0) || (this.mLA1 > '\002')) break;
      consume();
    }

    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mML_COMMENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 167;

    match("/*");
    while (true)
    {
      if ((this.mLA1 == '\r') && (LA(2) == '\n') && (LA(3) >= 0) && (LA(3) <= 65534) && (LA(4) >= 0) && (LA(4) <= 65534)) {
        consume();
        consume();
        if (this.inputState.guessing == 0);
        newline();
      }

      if ((this.mLA1 == '*') && (LA(2) >= 0) && (LA(2) <= 65534) && (LA(3) >= 0) && (LA(3) <= 65534) && (LA(2) != '/')) {
        consume();
      }
      if ((this.mLA1 == '\r') && (LA(2) >= 0) && (LA(2) <= 65534) && (LA(3) >= 0) && (LA(3) <= 65534)) {
        consume();
        if (this.inputState.guessing == 0);
        newline();
      }

      if ((_tokenSet_1.member(this.mLA1)) && (LA(2) >= 0) && (LA(2) <= 65534) && (LA(3) >= 0) && (LA(3) <= 65534))
      {
        match(_tokenSet_1);
      }

      if ((this.mLA1 >= 0) && (this.mLA1 <= '\002') && (LA(2) >= 0) && (LA(2) <= 65534) && (LA(3) >= 0) && (LA(3) <= 65534)) {
        consume();
      }
      if (this.mLA1 != '\n') break;
      consume();
      if (this.inputState.guessing == 0);
      newline();
    }

    match("*/");
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mCHAR_LITERAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 160;

    match('\'');

    if (this.mLA1 == '\\') {
      mESC(false);
    }
    else if (_tokenSet_2.member(this.mLA1))
    {
      match(_tokenSet_2);
    }
    else
    {
      throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
    }

    match('\'');
    if (this.inputState.guessing == 0) {
      if ((_createToken) && (_token == null) && (_ttype != -1)) {
        _token = makeToken(_ttype);
        int len = this.text.length() - _begin;
        if (len == 1)
          _token.setText(CHARS[this.text.charAt(_begin)]);
        else {
          _token.setText(new String(this.text.getBuffer(), _begin, len));
        }

      }

      this._returnToken = _token;
      return;
    }
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  protected final void mESC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 168;

    match('\\');

    switch (this.mLA1)
    {
    case 'n':
      match('n');
      break;
    case 'r':
      match('r');
      break;
    case 't':
      match('t');
      break;
    case 'b':
      match('b');
      break;
    case 'f':
      match('f');
      break;
    case '"':
      match('"');
      break;
    case '\'':
      match('\'');
      break;
    case '\\':
      match('\\');
      break;
    case 'u':
      int _cnt411 = 0;
      while (true)
      {
        if (this.mLA1 == 'u') {
          match('u');
        }
        else {
          if (_cnt411 >= 1) break; throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
        }

        ++_cnt411;
      }

      mHEX_DIGIT(false);
      mHEX_DIGIT(false);
      mHEX_DIGIT(false);
      mHEX_DIGIT(false);
      break;
    case '0':
    case '1':
    case '2':
    case '3':
      consume();

      if ((this.mLA1 >= '0') && (this.mLA1 <= '7') && (_tokenSet_0.member(LA(2)))) {
        consume();

        if ((this.mLA1 >= '0') && (this.mLA1 <= '7') && (_tokenSet_0.member(LA(2)))) {
          consume();
        }
        else if (!_tokenSet_0.member(this.mLA1))
        {
          throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
        }

      }
      else if (!_tokenSet_0.member(this.mLA1))
      {
        throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
      }
    case '4':
    case '5':
    case '6':
    case '7':
      consume();

      if ((this.mLA1 >= '0') && (this.mLA1 <= '7') && (_tokenSet_0.member(LA(2)))) {
        consume();
      }
      else if (!_tokenSet_0.member(this.mLA1))
      {
        throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
      }
    default:
      throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
    }

    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mSTRING_LITERAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 161;

    match('"');
    while (true)
    {
      if (this.mLA1 == '\\') {
        mESC(false);
      }
      if (!_tokenSet_3.member(this.mLA1))
        break;
      match(_tokenSet_3);
    }

    match('"');
    if (this.inputState.guessing == 0) {
      if ((_createToken) && (_token == null) && (_ttype != -1)) {
        _token = makeToken(_ttype);
        int len = this.text.length() - _begin;
        if (len == 1)
          _token.setText(CHARS[this.text.charAt(_begin)]);
        else {
          _token.setText(new String(this.text.getBuffer(), _begin, len));
        }

      }

      this._returnToken = _token;
      return;
    }
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  protected final void mHEX_DIGIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 169;

    switch (this.mLA1)
    {
    case '0':
    case '1':
    case '2':
    case '3':
    case '4':
    case '5':
    case '6':
    case '7':
    case '8':
    case '9':
      consume();
      break;
    case 'A':
    case 'B':
    case 'C':
    case 'D':
    case 'E':
    case 'F':
      consume();
      break;
    case 'a':
    case 'b':
    case 'c':
    case 'd':
    case 'e':
    case 'f':
      consume();
      break;
    case ':':
    case ';':
    case '<':
    case '=':
    case '>':
    case '?':
    case '@':
    case 'G':
    case 'H':
    case 'I':
    case 'J':
    case 'K':
    case 'L':
    case 'M':
    case 'N':
    case 'O':
    case 'P':
    case 'Q':
    case 'R':
    case 'S':
    case 'T':
    case 'U':
    case 'V':
    case 'W':
    case 'X':
    case 'Y':
    case 'Z':
    case '[':
    case '\\':
    case ']':
    case '^':
    case '_':
    case '`':
    default:
      throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
    }

    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  protected final void mVOCAB(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 170;

    consume();
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mIDENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 68;

    consume();

    while (Character.isJavaIdentifierPart(this.mLA1)) {
      consume();
    }

    LiteralPair pair = findLiteral();

    if (pair == null) {
      _token = makeToken(_ttype);

      int len = this.text.length() - _begin;
      if (len == 1)
        _token.setText(CHARS[this.text.charAt(_begin)]);
      else {
        _token.setText(new String(this.text.getBuffer(), _begin, len).intern());
      }

    }
    else
    {
      _token = makeToken(pair.type);
      _token.setText(pair.str);
    }

    this._returnToken = _token;
  }

  public final void mNUM_INT(boolean _createToken)
    throws RecognitionException, CharStreamException, TokenStreamException
  {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 159;
    Token f1 = null;
    Token f2 = null;
    Token f3 = null;
    Token f4 = null;
    boolean isDecimal = false; Token t = null;

    switch (this.mLA1)
    {
    case '.':
      consume();
      if (this.inputState.guessing == 0) {
        _ttype = 69;
      }

      switch (this.mLA1)
      {
      case '0':
      case '1':
      case '2':
      case '3':
      case '4':
      case '5':
      case '6':
      case '7':
      case '8':
      case '9':
        int _cnt427 = 0;
        while (true)
        {
          if ((this.mLA1 >= '0') && (this.mLA1 <= '9')) {
            consume();
          }
          else {
            if (_cnt427 >= 1) break; throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
          }

          ++_cnt427;
        }

        if ((this.mLA1 == 'E') || (this.mLA1 == 'e')) {
          mEXPONENT(false);
        }

        if ((this.mLA1 == 'D') || (this.mLA1 == 'F') || (this.mLA1 == 'd') || (this.mLA1 == 'f')) {
          mFLOAT_SUFFIX(true);
          f1 = this._returnToken;
          if (this.inputState.guessing == 0) {
            t = f1;
          }

        }

        if (this.inputState.guessing == 0)
        {
          if ((t != null) && (t.getText().toUpperCase().indexOf('F') >= 0)) {
            _ttype = 162;
          }
          else
            _ttype = 164;
        }break;
      case '.':
        match("..");
        if (this.inputState.guessing == 0) {
          _ttype = 109;
        }

      case '/':
      }

      break;
    case '0':
    case '1':
    case '2':
    case '3':
    case '4':
    case '5':
    case '6':
    case '7':
    case '8':
    case '9':
      switch (this.mLA1)
      {
      case '0':
        match('0');
        if (this.inputState.guessing == 0) {
          isDecimal = true;
        }

        if ((this.mLA1 == 'X') || (this.mLA1 == 'x'))
        {
          switch (this.mLA1)
          {
          case 'x':
            match('x');
            break;
          case 'X':
            match('X');
            break;
          default:
            throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
          }

          int _cnt435 = 0;
          while (true)
          {
            if (_tokenSet_4.member(this.mLA1)) {
              mHEX_DIGIT(false);
            }
            else {
              if (_cnt435 >= 1) break; throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
            }

            ++_cnt435;
          }
        }
        else
        {
          boolean synPredMatched440 = false;
          if ((this.mLA1 >= '0') && (this.mLA1 <= '9')) {
            int _m440 = mark();
            synPredMatched440 = true;
            this.inputState.guessing += 1;
            try
            {
              int _cnt438 = 0;
              while (true)
              {
                if ((this.mLA1 >= '0') && (this.mLA1 <= '9')) {
                  consume();
                }
                else {
                  if (_cnt438 >= 1) break; throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
                }

                ++_cnt438;
              }

              switch (this.mLA1)
              {
              case '.':
                consume();
                break;
              case 'E':
              case 'e':
                mEXPONENT(false);
                break;
              case 'D':
              case 'F':
              case 'd':
              case 'f':
                mFLOAT_SUFFIX(false);
                break;
              default:
                throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
              }

            }
            catch (RecognitionException pe)
            {
              synPredMatched440 = false;
            }
            rewind(_m440);
            this.inputState.guessing -= 1;
          }
          if (synPredMatched440)
          {
            int _cnt442 = 0;
            while (true)
            {
              if ((this.mLA1 >= '0') && (this.mLA1 <= '9')) {
                consume();
              }
              else {
                if (_cnt442 >= 1) break; throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
              }

              ++_cnt442;
            }

          }
          else if ((this.mLA1 >= '0') && (this.mLA1 <= '7'))
          {
            int _cnt444 = 0;
            while (true)
            {
              if ((this.mLA1 >= '0') && (this.mLA1 <= '7')) {
                consume();
              }
              else {
                if (_cnt444 >= 1) break; throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
              }

              ++_cnt444;
            }

          }

        }

        break;
      case '1':
      case '2':
      case '3':
      case '4':
      case '5':
      case '6':
      case '7':
      case '8':
      case '9':
        consume();

        while ((this.mLA1 >= '0') && (this.mLA1 <= '9')) {
          consume();
        }

        if (this.inputState.guessing == 0)
          isDecimal = true; break;
      default:
        throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
      }

      if ((this.mLA1 == 'L') || (this.mLA1 == 'l'))
      {
        switch (this.mLA1)
        {
        case 'l':
          match('l');
          break;
        case 'L':
          match('L');
          break;
        default:
          throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
        }

        if (this.inputState.guessing == 0) {
          _ttype = 163;
        }
      }
      else if ((((this.mLA1 == '.') || (this.mLA1 == 'D') || (this.mLA1 == 'E') || (this.mLA1 == 'F') || (this.mLA1 == 'd') || (this.mLA1 == 'e') || (this.mLA1 == 'f'))) && (isDecimal))
      {
        switch (this.mLA1)
        {
        case '.':
          consume();

          while ((this.mLA1 >= '0') && (this.mLA1 <= '9')) {
            consume();
          }

          if ((this.mLA1 == 'E') || (this.mLA1 == 'e')) {
            mEXPONENT(false);
          }

          if ((this.mLA1 == 'D') || (this.mLA1 == 'F') || (this.mLA1 == 'd') || (this.mLA1 == 'f')) {
            mFLOAT_SUFFIX(true);
            f2 = this._returnToken;
            if (this.inputState.guessing == 0)
              t = f2;
          }break;
        case 'E':
        case 'e':
          mEXPONENT(false);

          if ((this.mLA1 == 'D') || (this.mLA1 == 'F') || (this.mLA1 == 'd') || (this.mLA1 == 'f')) {
            mFLOAT_SUFFIX(true);
            f3 = this._returnToken;
            if (this.inputState.guessing == 0)
              t = f3;
          }break;
        case 'D':
        case 'F':
        case 'd':
        case 'f':
          mFLOAT_SUFFIX(true);
          f4 = this._returnToken;
          if (this.inputState.guessing == 0)
            t = f4; break;
        default:
          throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
        }

        if (this.inputState.guessing == 0)
        {
          if ((t != null) && (t.getText().toUpperCase().indexOf('F') >= 0)) {
            _ttype = 162;
          }
          else
            _ttype = 164;
        }
      }break;
    case '/':
    default:
      throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
    }

    if (this.inputState.guessing == 0) {
      if ((_createToken) && (_token == null) && (_ttype != -1)) {
        _token = makeToken(_ttype);

        int len = this.text.length() - _begin;
        if (len == 1) {
          _token.setText(CHARS[this.text.charAt(_begin)]);
        } else {
          String content = new String(this.text.getBuffer(), _begin, len);
          _token.setText(content);
        }
      }

      this._returnToken = _token;
      return;
    }
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  protected final void mEXPONENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 171;

    switch (this.mLA1)
    {
    case 'e':
      match('e');
      break;
    case 'E':
      match('E');
      break;
    default:
      throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
    }

    switch (this.mLA1)
    {
    case '+':
      consume();
      break;
    case '-':
      consume();
      break;
    case '0':
    case '1':
    case '2':
    case '3':
    case '4':
    case '5':
    case '6':
    case '7':
    case '8':
    case '9':
      break;
    case ',':
    case '.':
    case '/':
    default:
      throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
    }

    int _cnt460 = 0;
    while (true)
    {
      if ((this.mLA1 >= '0') && (this.mLA1 <= '9')) {
        consume();
      }
      else {
        if (_cnt460 >= 1) break; throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
      }

      ++_cnt460;
    }

    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  protected final void mFLOAT_SUFFIX(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 172;

    switch (this.mLA1)
    {
    case 'f':
      match('f');
      break;
    case 'F':
      match('F');
      break;
    case 'd':
      match('d');
      break;
    case 'D':
      match('D');
      break;
    default:
      throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
    }

    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  public final void mUNICODE_EOF(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
    Token _token = null; int _begin = this.text.length();
    int _ttype = 173;

    switch (this.mLA1)
    {
    case '\032':
      match('\032');
      break;
    case '\\':
      match("\\u001a");
      break;
    default:
      throw new NoViableAltForCharException(this.mLA1, getFilename(), getLine(), getColumn());
    }

    if (this.inputState.guessing == 0) {
      uponEOF(); this._returnToken = makeToken(1); return;
    }
    if ((_createToken) && (_token == null) && (_ttype != -1)) {
      _token = makeToken(_ttype);
      _token.setText(new String(this.text.getBuffer(), _begin, this.text.length() - _begin));
    }
    this._returnToken = _token;
  }

  private static final long[] mk_tokenSet_0()
  {
    long[] data = new long[2048];
    data[0] = -9217L;
    for (int i = 1; i <= 1022; ++i) data[i] = -1L;
    data[1023] = 9223372036854775807L;
    return data;
  }

  private static final long[] mk_tokenSet_1() {
    long[] data = new long[2048];
    data[0] = -4398046520321L;
    for (int i = 1; i <= 1022; ++i) data[i] = -1L;
    data[1023] = 9223372036854775807L;
    return data;
  }

  private static final long[] mk_tokenSet_2() {
    long[] data = new long[2048];
    data[0] = -549755823105L;
    data[1] = -268435457L;
    for (int i = 2; i <= 1022; ++i) data[i] = -1L;
    data[1023] = 9223372036854775807L;
    return data;
  }

  private static final long[] mk_tokenSet_3() {
    long[] data = new long[2048];
    data[0] = -17179878401L;
    data[1] = -268435457L;
    for (int i = 2; i <= 1022; ++i) data[i] = -1L;
    data[1023] = 9223372036854775807L;
    return data;
  }

  private static final long[] mk_tokenSet_4() {
    long[] data = new long[1025];
    data[0] = 287948901175001088L;
    data[1] = 541165879422L;
    return data;
  }

  static
  {
    for (int i = 0; i < CHARS.length; ++i) {
      CHARS[i] = Character.toString((char)i).intern();
    }

    literals = new HashMap(64);
    literals.put(new ANTLRHashString("byte", null), new LiteralPair("byte", 80));
    literals.put(new ANTLRHashString("public", null), new LiteralPair("public", 89));
    literals.put(new ANTLRHashString("case", null), new LiteralPair("case", 122));
    literals.put(new ANTLRHashString("short", null), new LiteralPair("short", 82));
    literals.put(new ANTLRHashString("break", null), new LiteralPair("break", 115));
    literals.put(new ANTLRHashString("while", null), new LiteralPair("while", 113));
    literals.put(new ANTLRHashString("new", null), new LiteralPair("new", 158));
    literals.put(new ANTLRHashString("instanceof", null), new LiteralPair("instanceof", 145));
    literals.put(new ANTLRHashString("implements", null), new LiteralPair("implements", 106));
    literals.put(new ANTLRHashString("synchronized", null), new LiteralPair("synchronized", 93));
    literals.put(new ANTLRHashString("float", null), new LiteralPair("float", 84));
    literals.put(new ANTLRHashString("package", null), new LiteralPair("package", 62));
    literals.put(new ANTLRHashString("return", null), new LiteralPair("return", 117));
    literals.put(new ANTLRHashString("throw", null), new LiteralPair("throw", 119));
    literals.put(new ANTLRHashString("null", null), new LiteralPair("null", 157));
    literals.put(new ANTLRHashString("protected", null), new LiteralPair("protected", 90));
    literals.put(new ANTLRHashString("class", null), new LiteralPair("class", 101));
    literals.put(new ANTLRHashString("throws", null), new LiteralPair("throws", 108));
    literals.put(new ANTLRHashString("do", null), new LiteralPair("do", 114));
    literals.put(new ANTLRHashString("strictfp", null), new LiteralPair("strictfp", 41));
    literals.put(new ANTLRHashString("super", null), new LiteralPair("super", 72));
    literals.put(new ANTLRHashString("transient", null), new LiteralPair("transient", 91));
    literals.put(new ANTLRHashString("native", null), new LiteralPair("native", 92));
    literals.put(new ANTLRHashString("interface", null), new LiteralPair("interface", 102));
    literals.put(new ANTLRHashString("final", null), new LiteralPair("final", 39));
    literals.put(new ANTLRHashString("if", null), new LiteralPair("if", 111));
    literals.put(new ANTLRHashString("double", null), new LiteralPair("double", 86));
    literals.put(new ANTLRHashString("volatile", null), new LiteralPair("volatile", 94));
    literals.put(new ANTLRHashString("assert", null), new LiteralPair("assert", 120));
    literals.put(new ANTLRHashString("catch", null), new LiteralPair("catch", 125));
    literals.put(new ANTLRHashString("try", null), new LiteralPair("try", 123));
    literals.put(new ANTLRHashString("enum", null), new LiteralPair("enum", 103));
    literals.put(new ANTLRHashString("int", null), new LiteralPair("int", 83));
    literals.put(new ANTLRHashString("for", null), new LiteralPair("for", 121));
    literals.put(new ANTLRHashString("extends", null), new LiteralPair("extends", 71));
    literals.put(new ANTLRHashString("boolean", null), new LiteralPair("boolean", 79));
    literals.put(new ANTLRHashString("char", null), new LiteralPair("char", 81));
    literals.put(new ANTLRHashString("private", null), new LiteralPair("private", 88));
    literals.put(new ANTLRHashString("default", null), new LiteralPair("default", 105));
    literals.put(new ANTLRHashString("false", null), new LiteralPair("false", 156));
    literals.put(new ANTLRHashString("this", null), new LiteralPair("this", 107));
    literals.put(new ANTLRHashString("static", null), new LiteralPair("static", 65));
    literals.put(new ANTLRHashString("abstract", null), new LiteralPair("abstract", 40));
    literals.put(new ANTLRHashString("continue", null), new LiteralPair("continue", 116));
    literals.put(new ANTLRHashString("finally", null), new LiteralPair("finally", 124));
    literals.put(new ANTLRHashString("else", null), new LiteralPair("else", 112));
    literals.put(new ANTLRHashString("import", null), new LiteralPair("import", 64));
    literals.put(new ANTLRHashString("void", null), new LiteralPair("void", 78));
    literals.put(new ANTLRHashString("switch", null), new LiteralPair("switch", 118));
    literals.put(new ANTLRHashString("true", null), new LiteralPair("true", 155));
    literals.put(new ANTLRHashString("long", null), new LiteralPair("long", 85));

    _tokenSet_0 = new BitSet(mk_tokenSet_0());

    _tokenSet_1 = new BitSet(mk_tokenSet_1());

    _tokenSet_2 = new BitSet(mk_tokenSet_2());

    _tokenSet_3 = new BitSet(mk_tokenSet_3());

    _tokenSet_4 = new BitSet(mk_tokenSet_4());
  }

  private static final class LiteralPair
  {
    final String str;
    final int type;

    public LiteralPair(String str, int type)
    {
      this.str = str;
      this.type = type;
    }
  }
}
